#include <fcntl.h>
#include <unistd.h>
#include <stdlib.h>
#include <stdio.h>

int main(int argc,char const *argv[])
{
    //打开数据源文件
    int fd1 = open("love.txt",O_RDONLY);
    if (fd1 == -1)
    {
        //输出错误信息
        perror("打开读文件失败");
        //失败退出=>相当于 return 1 
        exit(EXIT_FAILURE);

    }
    //打开写的文件
    int fd2 = open("love2.txt",O_CREAT|O_WRONLY|O_APPEND,0664);

    if (fd2 == -1)
    {
        //输出错误信息
        perror("打开写文件爱你失败");
        exit(EXIT_FAILURE);
    }
    
    //读取文件内容到内存缓存区 read
    char buf[1024];
    ssize_t read_bytes;
    while ((read_bytes = read(fd1,buf,sizeof(buf))) > 0)
    {
       //将缓存区写到标准输出 write
       write(STDOUT_FILENO,buf,read_bytes);
       //将缓存区写到另一个文件 
       write(fd2,buf,read_bytes);
    }
    
    //如果 read_bytes 是-1,提示失败，闭关文件流并退出
    if (read_bytes == -1)
    {
        perror("读取文件失败");
        close(fd1);
        close(fd2);
        exit(EXIT_FAILURE);
    }
    
    //关闭文件
    close(fd1);
    close(fd2);

    return 0; 
}